Memory access speed is a significant factor in overall processor/computer performance. Generally, faster memory accesses result in higher performance. Unfortunately, the cost of high-speed memory often makes it impractical to construct a computer system using only high-speed memory. In an attempt to provide improved memory access rates, many computers employ a memory system that includes a hierarchy of memory levels. A hierarchical memory system may include a main memory and one or more caches. The main memory may be relatively large and inexpensive and include low-speed memory, such as dynamic random access memory (RAM), or the like. The caches are smaller storage arrays that include higher speed memory. The caches are disposed between the main memory and computer processor, and may be included on a die along with the processor.
The caches temporarily store recently accessed information (instruction or data). Caches are effective because information that has been accessed recently is likely to be accessed in the near future. As a program executes, the instructions or data recently accessed by the program are stored in the cache to provide quick future access.